package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 积分抵现规则（存储积分抵扣现金的规则）对象 points_redemption_rule
 *
 * @author ruoyi
 * @date 2025-05-16
 */
@Data
@ApiModel("积分抵现规则")
public class PointsRedemptionRule extends AbdulBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 自增主键，唯一标识每条积分抵现规则记录
     */
    @ApiModelProperty("自增主键，唯一标识每条积分抵现规则记录")
    @Excel(name = "自增主键", readConverterExp = "唯=一标识每条积分抵现规则记录")
    private Long id;

    /**
     * 规则名称（如“基础积分抵现规则”“会员日双倍积分抵现规则”）
     */
    @ApiModelProperty("规则名称")
    @Excel(name = "规则名称")
    private String ruleName;

    /**
     * 积分抵现是否启用（TRUE: 启用，FALSE: 不启用）
     */
    @ApiModelProperty("积分抵现是否启用（TRUE: 启用，FALSE: 不启用）")
    @Excel(name = "积分抵现是否启用", readConverterExp = "T=RUE:,启=用，FALSE:,不=启用")
    private Boolean isEnabled;

    /**
     * 每多少积分可抵扣1元现金（如“100”表示100积分=1元）
     */
    @ApiModelProperty("每多少积分可抵扣1元现金（如：100积分=1元）")
    @Excel(name = "每多少积分可抵扣1元现金", readConverterExp = "如=“100”表示100积分=1元")
    private Long pointsPerUnitAmount;

    /**
     * 积分抵扣金额占应付款比例上限（百分比，如50.00表示最多抵扣应付款的50%）
     */
    @ApiModelProperty("积分抵扣金额占应付款比例上限（百分比，如：50.00表示最多抵扣应付款的50%）")
    @Excel(name = "积分抵扣金额占应付款比例上限", readConverterExp = "百=分比，如50.00表示最多抵扣应付款的50%")
    private BigDecimal maxRedemptionRatio;

    /**
     * 单次订单最多可用积分（可选，NULL表示无限制）
     */
    @ApiModelProperty("单次订单最多可用积分")
    @Excel(name = "单次订单最多可用积分")
    private Long maxPointsPerOrder;

    /**
     * 规则状态（NORMAL: 正常，DISABLED: 已禁用）
     */
    @ApiModelProperty("规则状态（NORMAL: 正常，DISABLED: 已禁用）")
    @Excel(name = "规则状态", readConverterExp = "N=ORMAL:,正=常，DISABLED:,已=禁用")
    private String status;

    /**
     * 规则描述（如“100积分=1元，单笔订单最多抵扣50%应付款，最高可用5000积分”）
     */
    @ApiModelProperty("规则描述（如：100积分=1元，单笔订单最多抵扣50%应付款，最高可用5000积分）")
    @Excel(name = "规则描述", readConverterExp = "如=“100积分=1元，单笔订单最多抵扣50%应付款，最高可用5000积分”")
    private String ruleDescription;

    /**
     * 规则生效开始日期（YYYY-MM-DD，可选）
     */
    @ApiModelProperty("规则生效开始日期（YYYY-MM-DD，可选）")
    @Excel(name = "规则生效开始日期", readConverterExp = "Y=YYY-MM-DD，可选")
    private Date effectiveStartDate;

    /**
     * 规则生效结束日期（YYYY-MM-DD，可选）
     */
    @ApiModelProperty("规则生效结束日期（YYYY-MM-DD，可选）")
    @Excel(name = "规则生效结束日期", readConverterExp = "Y=YYY-MM-DD，可选")
    private Date effectiveEndDate;

    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;
}